package com.block.datapush.form.item.util;

import cn.hutool.core.util.IdcardUtil;
import cn.hutool.core.util.StrUtil;
import com.block.common.enums.BaseTypeInfoEnum;

import java.util.Arrays;
import java.util.List;

/***
 * 快乐分期常量
 */
public class HappyUtil {

    /**
     * 	申请金额 单位：万
     * @param loanAmount
     * @return
     */
    public static Integer getLoanAmount(String loanAmount) {
        if (StrUtil.equals(loanAmount, BaseTypeInfoEnum.LoanAmount.la001.getValue())){
            return 3;
        }else if (StrUtil.equals(loanAmount, BaseTypeInfoEnum.LoanAmount.la002.getValue())){
            return 5;
        }else if (StrUtil.equals(loanAmount, BaseTypeInfoEnum.LoanAmount.la003.getValue())){
            return 10;
        }
        return 1;
    }

    /**
     * 公积金： 100【无】；101【3个月以下】；102【3-6个月】；103【6个月以上】
     * @param gjj
     * @return
     */
    public static Integer getGjj(String gjj) {
        if (StrUtil.equals(gjj, BaseTypeInfoEnum.Gjj.gjj001.getValue())){
            return 100;
        }else if (StrUtil.equals(gjj, BaseTypeInfoEnum.Gjj.gjj002.getValue())){
            return 103;
        }
        return 101;
    }

    /**
     * 200【无】；201【3个月以下】；202【3-6个月】；203【6个月以上】
     * @param socialInsurance
     * @return
     */
    public static Integer getShebao(String socialInsurance) {
        if (StrUtil.equals(socialInsurance, BaseTypeInfoEnum.SocialInsurance.si001.getValue())){
            return 200;
        }else if (StrUtil.equals(socialInsurance, BaseTypeInfoEnum.SocialInsurance.si002.getValue())){
            return 203;
        }
        return 201;
    }

    /**
     * 保险情况 ：300【无】；301【投保人寿险且保两年以下】；302【投保人寿险且保两年以上】
     * @param insurance
     * @return
     */
    public static Integer getBaodan(String insurance) {
        if (StrUtil.equals(insurance, BaseTypeInfoEnum.Insurance.in001.getValue())){
            return 300;
        }else if (StrUtil.equals(insurance, BaseTypeInfoEnum.Insurance.in002.getValue())){
            return 302;
        }
        return 301;
    }

    /**
     * 芝麻分 ：500【无】；501【580分以下】；502【580-599分】；503【600-619分】；
     * 504【620-649分】；505【650-699分】；506【700分以上】；
     * @param zhimaScore
     * @return
     */
    public static Integer getZhima(String zhimaScore) {
          if (StrUtil.equals(zhimaScore, BaseTypeInfoEnum.ZhimaScore.zm005.getValue())){
            return 506;
        }
//          else if (StrUtil.equals(zhimaScore, BaseTypeInfoEnum.ZhimaScore.zm004.getValue())){
//            return 505;
//        }
        return 505;
    }

    /**
     * 800【无】；801【3000以下】；802【3000-1万】；803【1-3万】；804【3万以上】；
     * @param huabei
     * @return
     */
    public static Integer getHuabei(String huabei) {
        if (StrUtil.equals(huabei, BaseTypeInfoEnum.Huabei.hb001.getValue())){
            return 800;
        }else if (StrUtil.equals(huabei, BaseTypeInfoEnum.Huabei.hb002.getValue())){
            return 803;
        }else if (StrUtil.equals(huabei, BaseTypeInfoEnum.Huabei.hb003.getValue())){
            return 804;
        }else if (StrUtil.equals(huabei, BaseTypeInfoEnum.Huabei.hb004.getValue())){
            return 804;
        }
        return 801;
    }

    /**
     * 白条 ：900【无】；901【3000以下】；902【3000-1万】；903【1-3万】；904【3万以上】；
     * @param baitiao
     * @return
     */
    public static Integer getBaitiao(String baitiao) {
        if (StrUtil.equals(baitiao, BaseTypeInfoEnum.Baitiao.bt001.getValue())){
            return 900;
        }else if (StrUtil.equals(baitiao, BaseTypeInfoEnum.Baitiao.bt002.getValue())){
            return 902;
        }else if (StrUtil.equals(baitiao, BaseTypeInfoEnum.Baitiao.bt003.getValue())){
            return 903;
        }else if (StrUtil.equals(baitiao, BaseTypeInfoEnum.Baitiao.bt004.getValue())){
            return 903;
        }
        return 901;
    }

    /**
     * 房产情况：1400【无】；1401【有按揭商品房】；1402【有全款商品房】；1403【有自建房】；1404【仅外地有房】
     * @param house
     * @return
     */
    public static Integer getHouse(String house) {
        if (StrUtil.equals(house, BaseTypeInfoEnum.House.hu001.getValue())){
            return 1400;
        }else if (StrUtil.equals(house, BaseTypeInfoEnum.House.hu002.getValue())){
            return 1401;
        }
        return 1400;
    }

    /**
     * 车产情况：1500【无车】；1501【有按揭汽车】；1502【有全款汽车】
     * @param car
     * @return
     */
    public static Integer getCar(String car) {
        if (StrUtil.equals(car, BaseTypeInfoEnum.Car.car001.getValue())){
            return 1500;
        }else if (StrUtil.equals(car, BaseTypeInfoEnum.Car.car002.getValue())){
            return 1502;
        }
        return 1501;
    }

    /**
     * 信用逾期情况：1300【无信用卡或贷款】；1301【1年内逾期超过3次或者90天】；
     * 1302【1年内逾期少于3次且少于90天】；1303【信用良好，无逾期】；1304【近一年无逾期】
     * @param yuqi
     * @return
     */
    public static Integer getYuqi(String yuqi) {
        if (StrUtil.equals(yuqi, BaseTypeInfoEnum.Yuqi.yq001.getValue())){
            return 1302;
        }else if (StrUtil.equals(yuqi, BaseTypeInfoEnum.Yuqi.yq002.getValue())){
            return 1303;
        }
        return 1302;
    }

    /**
     * ：1【女】；2【男】
     * @param idCard
     * @return
     */
    public static Integer getSex(String idCard) {
        try {
            int genderByIdCard = IdcardUtil.getGenderByIdCard(idCard);
            return genderByIdCard == 1?2:1;
        }catch (Exception exception){
            exception.printStackTrace();
        }
        return 2;
    }

    public static Integer getAge(String idCard) {
       try {
           int ageByIdCard = IdcardUtil.getAgeByIdCard(idCard);
           return ageByIdCard;
       }catch (Exception exception){
           exception.printStackTrace();
       }
       return 35;
    }


    static List<String> cityList = Arrays.asList("北京市","天津市","上海市","重庆市");

    /**
     * 获取城市信息
     * @param cityName
     * @return
     */
    public static String getCityName(String province,String cityName) {
        try {

            if (cityList.contains(province)){
                return  province.substring(0, province.length() - 1);
            }

            boolean end = cityName.endsWith("市");
            if (end){
                return  cityName.substring(0, cityName.length() - 1);
            }
            return cityName;
        }catch (Exception exception){
            exception.printStackTrace();
        }
        return cityName;
    }
}
